Skip to content

feat: Implement Calendar & Meeting Schedule Page closes #80#94

Merged
imuniqueshiv merged 3 commits into
imuniqueshiv:mainfrom
M0izz:feat/calendar-page
Jul 8, 2026
Merged

feat: Implement Calendar & Meeting Schedule Page closes #80#94
imuniqueshiv merged 3 commits into
imuniqueshiv:mainfrom
M0izz:feat/calendar-page

Conversation

@M0izz

@M0izz M0izz commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Implements a dedicated, responsive, and modern SaaS-style Calendar & Meeting Schedule dashboard page at /calendar, closing #80. This page integrates with existing meeting database records and lets users view, filter, and navigate their meetings across multiple layouts.

Backend

  • Extended the projection select in the getAllMeetings controller (meetingController.js) to include the time, duration, recordingType, and organization fields.
  • Chained .populate("organization", "name") to the getAllMeetings query so that organization names resolve correctly on the frontend for filter and detail queries.
  • Maintained strict formatting scope to avoid any noisy diffs.

Frontend

  • New Page (Calendar.jsx): Implemented a modern, light-themed calendar page supporting three distinct views:
  • Month View: Grid layout mapping events to days with color-coded status indicators (completed, processing, failed, uploaded).
  • Week View: Hourly schedule grid (08:00 to 20:00) where card heights and vertical offsets are positioned dynamically from meeting start times and durations.
  • Day View: Timeline view presenting an hourly scroll scale on the left and a chronological list agenda on the right.
  • Jump-to-Date Filter: Added an interactive inline <input type="date" /> picker in the filters row to instantly jump the calendar focus to any day.
  • Quick Actions Modal: Intersecting events opens a details dialog containing metadata (date, duration, organization, location, and description) and shortcuts (View full details, Join Live Room).
  • Filters Row: Dropdown selectors to filter by Status, Meeting Type, and Organization (Personal vs. Organization toggle).
  • Routing (App.jsx): Registered the /calendar route as a protected path under <ProtectedRoute>.
  • Navigation (Navbar.jsx): Added the "Calendar" link to desktop and mobile navigation headers using the CalendarDays icon.

Screenshots

calendar_ui_mockup_1783453799562

Testing & Verification

All validation requirements have been completed successfully:

  • Formatting Check*: Running npx prettier --check confirms all modified files are 100% formatted.
  • Linting Check*: Running npm run lint yields 0 compilation or linting errors.
  • Production Build*: Running npm run build compiles Vite assets successfully.
  • Functional Checks*: Verified Month/Week/Day layout shifting, filters, details modal overlays, calendar step-actions, and jump-to-date navigation bounds.

@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

@M0izz is attempting to deploy a commit to the Shiv Raj Singh's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Jul 7, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

This PR adds a new Calendar/Schedule page displaying meetings in month, week, and day views with filtering by status, type, and organization, and a details modal. It wires the page into routing and navbar navigation, and extends the meetings API response with additional fields including organization data.

Changes

Calendar Feature

Layer / File(s) Summary
Backend meetings API expansion
server/controllers/meetingController.js
getAllMeetings now selects time, duration, recordingType, and populates organization with its name.
Calendar state, fetching, and filtering
client/src/pages/Calendar.jsx
Sets up component state, fetches meetings from the backend, handles Escape-key modal close, and filters meetings by status/type/organization.
Date navigation and grid helpers
client/src/pages/Calendar.jsx
Adds prev/next/today navigation, week/day array helpers, month grid construction, time parsing/formatting, and view-based header titles.
Layout, toolbar, and view rendering
client/src/pages/Calendar.jsx
Renders the toolbar (navigation, view toggle, filters) and the month/week/day calendar views, plus loading and empty states.
Meeting details modal
client/src/pages/Calendar.jsx
Adds a modal showing meeting details with status styling and quick actions (including conditional live-room navigation), plus component export.
Routing and navbar wiring
client/src/App.jsx, client/src/components/Navbar.jsx
Registers a protected /calendar route and adds a "Calendar" navbar link with a CalendarDays icon.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Navbar
    participant Calendar as Calendar Page
    participant Backend as Backend API
    participant DB as MongoDB

    User->>Navbar: Click "Calendar" link
    Navbar->>Calendar: Navigate to /calendar
    Calendar->>Backend: GET /api/meetings/all (with credentials)
    Backend->>DB: Query meetings with expanded fields + populate organization
    DB-->>Backend: Meetings data (time, duration, recordingType, organization)
    Backend-->>Calendar: Meetings JSON response
    Calendar->>Calendar: Apply status/type/organization filters
    Calendar-->>User: Render month/week/day view
    User->>Calendar: Click meeting card
    Calendar-->>User: Show "Quick Details" modal
Loading

Possibly related issues

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: adding a Calendar and meeting schedule page.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@server/controllers/meetingController.js`:
- Around line 588-591: The meetings list query is omitting fields that the UI
needs, so update the Meeting.find(...).select(...) projection in
meetingController so it also includes location and description alongside the
existing fields. Keep the same query shape and populate behavior, and make sure
the /api/meetings/all response preserves those two properties for Calendar.jsx
and the meeting-details modal.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: d3ae629e-7e5a-4211-9eb1-725744d712e5

📥 Commits

Reviewing files that changed from the base of the PR and between 3a34369 and 0b27cf9.

📒 Files selected for processing (4)
  • client/src/App.jsx
  • client/src/components/Navbar.jsx
  • client/src/pages/Calendar.jsx
  • server/controllers/meetingController.js

Comment thread server/controllers/meetingController.js
@M0izz

M0izz commented Jul 7, 2026

Copy link
Copy Markdown
Contributor Author

Hi @imuniqueshiv I have done the work, looking for feedback :)

@vercel

vercel Bot commented Jul 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
meetonmemory Ready Ready Preview, Comment Jul 8, 2026 2:23am

@imuniqueshiv

Copy link
Copy Markdown
Owner

@M0izz Thank you for another excellent contribution and for your continued support of MeetOnMemory! 🚀

I really appreciate the effort you put into building the Calendar & Meeting Schedule page. The implementation is well organized, feature-rich, and integrates nicely with the existing application while staying within the scope of the issue. Thank you for your responsiveness and the quality of your work throughout the review process.

I'm happy to have merged your contribution! If you found MeetOnMemory helpful, please consider ⭐ starring the repository. Looking forward to seeing more of your future contributions. Happy coding! 💙

@imuniqueshiv imuniqueshiv merged commit 5e9fcff into imuniqueshiv:main Jul 8, 2026
8 checks passed
@github-actions

github-actions Bot commented Jul 8, 2026

Copy link
Copy Markdown

🎉 Thank you for your contribution! Your pull request has been successfully merged. We appreciate your effort in improving MeetOnMemory, @M0izz!

@imuniqueshiv imuniqueshiv added enhancement New feature or request ECSoC26 Eligible for Elite Coders Summer of Code 2026 automated scoring. good-issue +10 XP UI/UX frontend backend ECSoC26-L2 labels Jul 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend ECSoC26-L2 ECSoC26 Eligible for Elite Coders Summer of Code 2026 automated scoring. enhancement New feature or request frontend good-issue +10 XP UI/UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants